package java_thinking.unit_11._11_3;

import java.util.*;

/**
 * @Description : Collection.addAll()方法接受一个Collection对象，以及一个数组或是一个用逗号分割的列表,将元素添加到Collection中
 *                  Arrays.asList()方法接受一个数组或是用一个逗号分割的元素列表，并将其转换为一个List对象
 *                  Collection.addAll()成员方法只能接受另一个Collection对象作为参数，不如Arrays.asList()或Collections.addAll()灵活，这两个方法使用的都是可变参数
 *
 *                  Collection<? super T> c
 *                      <? extends T>不是一个集合，而是T的某一种子类的意思
 *                      <? super T>以T类为下限的某种类，简单地说就是T类的超类，但为什么add(T)可以呢？因为能放入某一类的容器一定可以放入其子类，多态的概念
 * @author: cww
 * @DateTime: 2019-03-17 11:26
 */

public class AddinGroups {
    public static void main(String[] args) {
        Collection<Integer> collection = new ArrayList<>(Arrays.asList(1,2,3,4,5));
        Integer[] moreInts = {6,7,8,9,10};
        //将元素添加到末尾
        collection.addAll(Arrays.asList(moreInts));
        for (Integer in:collection){
            System.out.println(in);
        }
        //推荐方式
        Collections.addAll(collection,11,12,13,14,15);
        for (Integer in:collection){
            System.out.println(in);
        }
        Collections.addAll(collection,moreInts);

        //Arrays.asList()底层表示的是数组，因此不能调整数组尺寸，
        List<Integer> list = Arrays.asList(16,17,18,19);
        list.set(1,99);
        System.out.println(list);
        //list.add(21); //这里运行就会报错了，因为list在新建的时候就定义好了是4个元素，不能被重新扩展
    }


}
